package org.sbbs.app.demo.webapp.action;

import org.sbbs.app.demo.model.DemoEntity;
import org.sbbs.app.demo.model.DemoTreeNode;
import org.sbbs.app.demo.service.DemoTreeNodeManager;
import org.sbbs.base.pager.IPager;
import org.sbbs.base.pager.impl.JqgridPagerImpl;
import org.sbbs.base.searcher.SearchFilter;
import org.sbbs.base.searcher.SearchFilterBuilder;
import org.sbbs.base.webapp.action.BaseJqgridPagedAction;

public class DemoTreeNodePagedAction extends BaseJqgridPagedAction {
	DemoTreeNodeManager demoTreeNodeManager;

	public DemoTreeNodeManager getDemoTreeNodeManager() {
		return demoTreeNodeManager;
	}

	public void setDemoTreeNodeManager(DemoTreeNodeManager demoTreeNodeManager) {
		this.demoTreeNodeManager = demoTreeNodeManager;
	}

	@Override
	public Class getSearchEntityClazz() {
		return DemoTreeNode.class;
	}

	@Override
	public int getSearchFilterType() {
		return SearchFilterBuilder.PROPERTY_FILTER;
	}

	 @Override
	    public String gridPageList() {
	        try {
	            IPager pager = new JqgridPagerImpl( getRequest() );
	            SearchFilter sf = SearchFilterBuilder.buildSearchFilter( getRequest(), SearchFilterBuilder.JQGRID_SELF );
	            pager = this.demoTreeNodeManager.pagedQuery( this.getSearchEntityClazz(), pager, sf );

	            this.pageList = pager.getList();
	            records = pager.getTotalNumberOfRows();
	            total = pager.getTotalNumberOfPages();
	            page = pager.getPageNumber();

	        }
	        catch ( Exception e ) {
	            log.error( "GridList Error", e );
	        }
	        return SUCCESS;
	    }
}
